package com.cjm.algorithm.node;

import com.cjm.algorithm.ListNode;
import com.cjm.algorithm.ListNodeHelp;

public class Ti240424206 {
    public static void main(String[] args) {
        ListNode listNode = ListNodeHelp.toListNode(new int[]{1, 2, 3, 4, 5});
        Ti240424206 t = new Ti240424206();
        t.reverseList(listNode);
    }
    public ListNode reverseList(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        // 当遍历到一个元素时， 这个元素的将会是下个元素的子节点
        // 那么需要记录当前节点的下一个节点， 那么这个
        ListNode cur = head;
        ListNode next = cur.next;
        cur.next = null;

        while (next != null) {
            ListNode tmp = next.next;
            next.next = cur;
            cur = next;
            next = tmp;
        }
        return cur;
    }
}
